#pragma once
class GraphicComponent
{
public:
	GraphicComponent(Render* _render);
	virtual ~GraphicComponent(void);

	void createVertexShader(const std::string& vsfile, const std::string& vsEntry, const VertexDesc& desc);
	void createPixelShader(const std::string& psfile, const std::string& psEntry);
	void createGeometryShader(const std::string& gsfile, const std::string& gsEntry);
	void createVertexBuffer(const void* vert, size_t numElements, size_t _sizeOfVertex);
	void createIndexBuffer(const void* index, size_t numElements);

	void draw();
protected:
	pint vertexShader, geometryShader, pixelShader;
	pint inputLayout;
	Render* render;
	pint vertexBuffer, indexBuffer;
	size_t sizeOfVertex, numIndices;
};